/**
* 调试
*/
function debug(o){
	console && console.log && console.log(o);
}

/**
* 提交数据，针对miniui
*
*/
function submitForm(formId,url,callback){
	var form = new mini.Form('#'+formId),
		formData = form.getData(),msgBoxID;
	
	if (!form.validate())
		return;
	
	$.ajax({
	    url: url,
	    type: "post",
	    dataType:"json",
	    data:formData,
	    success: function (result) {
		    if (result){
		        if (result.error){
		        	mini.alert(result.result);
		        }else if (result.success){
		        	if (callback){
		        		callback(result)
		        	}else{
		        		mini.alert(result.result);
		        	}
		        }
		   	}else
		   		callback && callback(result);
	    },
	    beforeSend:function(){
	    	msgBoxID = mini.loading("请求中...","提示");
	    },
	    complete:function(){
	    	mini.hideMessageBox(msgBoxID);
	    }
	    
	});
}

/**
* 提交数据，针对miniui
*
*/
function submitFormJson(formId,url,callback){
	var form = new mini.Form('#'+formId),
		formData = form.getData(),msgBoxID;
	
	if (!form.validate())
		return;
	$.ajax({
	    url: url,
	    type: "post",
	    dataType:"json",
	    data:{jsonData:mini.encode(formData)},
	    success: function (result) {
		    if (result){
		        if (result.error){
		        	mini.alert(result.result);
		        }else if (result.success){
		        	if (callback){
		        		callback(result)
		        	}else{
		        		mini.alert(result.result);
		        	}
		        }
		    }else
		   		callback && callback(result);
	    },
	    error:function(){
	    	mini.alert('请求错误，请重试！');
	    },
	    beforeSend:function(){
	    	msgBoxID = mini.loading("请求中...","提示");
	    },
	    complete:function(){
	    	mini.hideMessageBox(msgBoxID);
	    }
	});
}

function submitData(url,formData,callback){
	var msgBoxID;
	$.ajax({
	    url: url,
	    type: "post",
	    dataType:"json",
	    data:formData,
	    success: function (result) {
	    	if (result){
		        if (result.error){
		        	mini.alert(result.result);
		        }else if (result.success){
		        	if (callback){
		        		callback(result)
		        	}else{
		        		mini.alert(result.result);
		        	}
		        }
	        }else
		   		callback && callback(result);
	    },
	    beforeSend:function(){
	    	msgBoxID = mini.loading("请求中...","提示");
	    },
	    complete:function(){
	    	mini.hideMessageBox(msgBoxID);
	    }
	    
	});
}



/**
 * 扩展日期方法
 * @param {Object} fmt
 */
// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子：
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
Date.prototype.format = function(fmt) {
    //author: meizz
    var o = {
        "M+" : this.getMonth() + 1, //月份
        "d+" : this.getDate(), //日
        "h+" : this.getHours(), //小时
        "m+" : this.getMinutes(), //分
        "s+" : this.getSeconds(), //秒
        "q+" : Math.floor((this.getMonth() + 3) / 3), //季度
        "S" : this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt))
        fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
};

/**
 * 得到数据类型
 * @param {Object} o
 */
function GET_TYPE(o) {
    var _t;
    return (( _t = typeof (o)) == "object" ? o == null && "null" || Object.prototype.toString.call(o).slice(8, -1) : _t).toLowerCase();
}

/**
 * 得到数组中最大的数字
 * @param {Object} arr
 */
function MAX_NUM(arr) {
    return Math.max.apply(null, arr);
}

/**
 * 得到数组中最大的数字
 * @param {Object} number arr
 */
function MIN_NUM(arr) {
    return Math.min.apply(null, arr);
}


function NOT_EMPTY(object) {
    if ($.isPlainObject(object)) {
        return !$.isEmptyObject(object);
    } else if ($.isArray(object)) {
        return (object.length > 0);
    } else {
        if (object !== 0) {
            return new Boolean(object).valueOf();
        } else {
            return true;
        }
    }
}
/*
* 线程
*/
function Thread(run, a, t) {
    var _timer = a ? setInterval : setTimeout, 
        _t = t || 1000, d = false, 
        f = a ? clearInterval : clearTimeout, 
        g, h, o = this;
    if (!$.isFunction(run)) {//可以其他判断方法判断是否是函数
        return null;
    }

    function _start() {
        var _tmpThread;
        if (notEmpty(g))
            return;
        if (!a) {
            _tmpThread = function() {
                if (!d) {
                    run.call(o);
                }
                g = _timer(_tmpThread, _t);
            };
            _tmpThread();
        } else {
            _tmpThread = function() {
                if (d)
                    return;
                run.call(o);
            };
            g = _timer(_tmpThread, _t);
        }
    }

    function _suspend() {
        if (!h)
            d = true;
        return d;
    }

    function _resume() {
        if (!h)
            d = false;
        return d;
    }

    function _stop() {
        f(g), h = true, d = true;
        return d;
    }


    this.start = _start;
    this.suspend = _suspend;
    this.resume = _resume;
    this.stop = _stop;
    this.getStatus = function() {
        return !d;
    };
}

/**
* 英文+数字验证
*/
function onEnglishAndNumberValidation(e) {
    if (e.isValid) {
        if (isEnglishAndNumber(e.value) == false) {
            e.errorText = "必须输入英文+数字";
            e.isValid = false;
        }
    }
}

/* 是否英文 */
function isEnglish(v) {
    var re = new RegExp("^[a-zA-Z\_]+$");
    if (re.test(v)) return true;
    return false;
}

/* 是否英文+数字 */
function isEnglishAndNumber(v) {
    
    var re = new RegExp("^[0-9a-zA-Z\_]+$");
    if (re.test(v)) return true;
    return false;
}

/* 是否汉字 */
function isChinese(v) {
    var re = new RegExp("^[\u4e00-\u9fa5]+$");
    if (re.test(v)) return true;
    return false;
}

function alert(msg){
	if (msg.indexOf('登录超时')!=-1){
		mini.alert('登录超时');
	}
}
